// get_arg.h
//

#if !defined(GETARG_H)
#define GETARG_H

#include <string>
//#include <iosfwd>
#include <fstream>
#include <sstream>


#include <program_options_helper.h>

class t_program_args : public program_options_helper::t_std_program_args_with_errors
{
	std::string		prot_out;
	std::string		cdna_out;
public:
	std::string		cdna__in;
	std::string		prot__in;
	std::string		missing_identifiers;
	
	// regular expression
	std::string		regex_str;

	// for error / progress messages etc.
	std::ifstream   f_prot__in;
	std::ofstream   f_prot_out;
	std::ifstream   f_cdna__in;
	std::ofstream   f_cdna_out;
	std::ofstream   f_intron_out;
	std::string		intron_out;
	std::ofstream   f_cdna_tout;
	std::ofstream   f_missing_identifiers;
	std::string		cdna_tout;
	char			use_X_for_aa_mismatches;
	unsigned		consecutive_matching_aa;


	// for initializing this struct
	friend
	bool process_command_line_options(int argc, char* argv[], t_program_args& args);
};

bool process_command_line_options(int argc, char* argv[], t_program_args& args);
#endif //GETARG_H
